Object Database Query Language



ODQL is a database programming language: that is, a language that combines database access and procedural programming. You can think of it as a combination of a fourth-generation language with an object SQL integrated seamlessly into one language.

ODQL combines the three functions defined by the Object Data Management Group into a single integrated fourth generation language:

Object definition language - Constructs for defining new classes and their properties,and the procedures to implement their methods.

Object query language - constructs for finding objects based on the values of their properties or operations.

Object manipulation language - constructs for creating and deleting objects, invoking operations on objects,and getting and setting the values of their properties.

In addition, the language also provides programming constructs such as variables and flow-of-control.

ODQL is used not only in the main application, in the way SQL would be used in a conventional application, but also in methods used to implement database operations (methods).

It is still straightforward to mix ODQL code with code in C or C++ where necessary, for example to invoke C or C++ library routines or system programming interfaces.


Using ODQL

ODQL is available in three environments:

Interpreter - This is an interactive environment allowing ODQL statements to be entered directly at the terminal, or executed from a file.

Preprocessor - The preprocessor allows ODQL statements to be embedded in a host language like C or C++. As well as static ODQL, the preprocessor allows dynamic ODQL statements to be constructed at run-time.

Remote ODQL - This has two components, a communications server that runs on the same platform as the ODB-II database server, and a library of routines to connect to this server and send messages to it from a Windows PC client machine. This library provides a call-level interface allowing ODQL statements to be constructed and issued dynamically, for example from a Visual Basic application.

The illustration below shows the architecture of the interpreter and preprocessor environments.

Embedded ODQL statements are converted by the ODQL preprocessor into native C or C++ code. Class and method definitions are held in the object base: the preprocessor uses these definitions to optimize the generated code. The generated code is then compiled to generate the executable. ODB-II generates dynamic linked libraries for object methods which are linked at execution time, and the application programs do not have to be recompiled every time the object base is updated.

The ODQL preprocessor and interpreter access object bases to read metadata, that is, descriptions of classes, properties, and operations. All metadata is held within object bases.

When should I use ODB-II?

ODB-II Architecture

Leading Edge Features of ODB-II

ODB-II Product Line

Object Database Query Language

ODB-II Tools

Current Implementations of ODB-II



OSD Home Page | Table of Contents | ODB-II | IntelligentPad | ObjectDirector


© 1995 FOSSI